package com.store.pet.petstore.widget;

import android.content.Context;
import android.support.annotation.IntDef;
import android.view.View;
import android.widget.TextView;

import com.store.pet.petstore.R;
import com.store.pet.petstore.util.CheckUtil;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * 提示弹窗框
 *
 * @author yangfei
 */
public class PromptDialog extends BaseDialog {

    /**
     * @param context 上下文对象
     * @param content 提示内容
     */
    public PromptDialog(Context context, String content) {
        super(context);

        // 设置宽度比例
        setWidthPercent(0.8f);

        // 初始化控件
        initView(content);
    }

    @Override
    public int getLayoutResId() {
        return R.layout.dlg_prompt;
    }

    private TextView dlg_prompt_title;
    private TextView dlg_prompt_content;
    private TextView dlg_prompt_cancel;
    private View dlg_prompt_line;
    private TextView dlg_prompt_confirm;

    /**
     * 初始化控件
     */
    private void initView(String content) {
        dlg_prompt_title = (TextView) findViewById(R.id.dlg_prompt_title);
        dlg_prompt_content = (TextView) findViewById(R.id.dlg_prompt_content);
        dlg_prompt_cancel = (TextView) findViewById(R.id.dlg_prompt_cancel);
        dlg_prompt_line = findViewById(R.id.dlg_prompt_line);
        dlg_prompt_confirm = (TextView) findViewById(R.id.dlg_prompt_confirm);
        // 设置提示内容
        setContent(content);
        // 取消
        dlg_prompt_cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (null != onDialogClickListener) {
                    onDialogClickListener.onCancel();
                }
                PromptDialog.super.dismiss();
            }
        });
        // 确定
        dlg_prompt_confirm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (null != onDialogClickListener) {
                    onDialogClickListener.onConfirm();
                }
                PromptDialog.super.dismiss();
            }
        });
    }

    /**
     * 隐藏取消按钮
     */
    public void hiddenCancel() {
        dlg_prompt_cancel.setVisibility(View.GONE);
        dlg_prompt_line.setVisibility(View.GONE);
    }

    /**
     * 设置按钮文字
     */
    public void setBtnText(String cancelText, String confirmText) {
        if (CheckUtil.isNotEmpty(cancelText)) {
            dlg_prompt_cancel.setText(cancelText);
        }
        if (CheckUtil.isNotEmpty(confirmText)) {
            dlg_prompt_confirm.setText(confirmText);
        }
    }

    @IntDef({View.VISIBLE, View.GONE})
    @Retention(RetentionPolicy.SOURCE)
    public @interface Visibility {
    }

    /**
     * 设置标题可见
     */
    public void setTitleVisible(@Visibility int visibility) {
        dlg_prompt_title.setVisibility(visibility);
    }

    /**
     * 设置标题
     */
    public void setTitleText(String titleText) {
        if (CheckUtil.isNotEmpty(titleText)) {
            dlg_prompt_title.setVisibility(View.VISIBLE);
            dlg_prompt_title.setText(titleText);
        }
    }

    /**
     * 设置提示内容
     *
     * @param content 提示内容
     */
    public void setContent(String content) {
        if (CheckUtil.isNotEmpty(content)) {
            dlg_prompt_content.setText(content);
        } else {
            dlg_prompt_content.setText("？");
        }
    }

    /**
     * 接口回调
     */
    public interface OnDialogClickListener {
        /**
         * 取消
         */
        void onCancel();

        /**
         * 确定
         */
        void onConfirm();
    }

    private OnDialogClickListener onDialogClickListener;

    public void setOnDialogClickListener(OnDialogClickListener onDialogClickListener) {
        this.onDialogClickListener = onDialogClickListener;
    }

}